import Mock from 'mockjs'

/**
 * Members 模拟数据
 */
class TeachingLiknageMock {

    // 显示资源列表
    index(option) {
        let param = this.parseOption(option);
        let data = [
            {
                sort: 1,
                Mon: [
                    { 'index': 3, 'title': '生物' },
                    { 'index': 4, 'title': '语文' },
                    { 'index': 5, 'title': '历史' },
                    { 'index': 6, 'title': '数学' },
                    { 'index': 7, 'title': '英语' },
                    { 'index': 8, 'title': '生物' },
                    { 'index': 1, 'title': '生物' }
                ],
                Tue: [
                    { 'index': 1, 'title': '物理' },
                    { 'index': 3, 'title': '语文' }
                ],
                Wed: [
                    { 'index': 5, 'title': '英语' },
                    { 'index': 6, 'title': '英语' },
                    { 'index': 7, 'title': '物理' },
                    { 'index': 8, 'title': '英语' },
                    { 'index': 1, 'title': '生物' },
                    { 'index': 2, 'title': '数学' },
                    { 'index': 3, 'title': '英语' }
                ],
                Thu: [
                    { 'index': 4, 'title': '语文' },
                    { 'index': 5, 'title': '英语' },
                    { 'index': 6, 'title': '生物' },
                    { 'index': 7, 'title': '历史' }
                ],
                Fri: [
                    { 'index': 8, 'title': '化学' },
                    { 'index': 1, 'title': '英语' }
                ],
                Sat: [
                    { 'index': 1, 'title': '物理' },
                    { 'index': 3, 'title': '语文' }
                ],
                Sun: [
                    { 'index': 8, 'title': '化学' },
                    { 'index': 1, 'title': '英语' }
                ]
            }, {
                sort: 2,
                Mon: [
                    { 'index': 8, 'title': '生物' },
                    { 'index': 1, 'title': '生物' }
                ],
                Tue: [
                    { 'index': 1, 'title': '物理' },
                    { 'index': 3, 'title': '语文' }
                ],
                Wed: [
                    { 'index': 5, 'title': '英语' },
                ],
                Thu: [
                    { 'index': 4, 'title': '语文' },
                ],
                Fri: [
                    { 'index': 8, 'title': '化学' },
                ],
                Sat: [
                    { 'index': 1, 'title': '物理' },
                    { 'index': 3, 'title': '语文' }
                ],
                Sun: [
                    { 'index': 8, 'title': '化学' },
                    { 'index': 1, 'title': '英语' }
                ]
            }, {
                sort: 3,
                Mon: [
                    { 'index': 3, 'title': '生物' },
                    { 'index': 4, 'title': '语文' },
                    { 'index': 5, 'title': '历史' },
                    { 'index': 6, 'title': '数学' },
                    { 'index': 7, 'title': '英语' },
                    { 'index': 8, 'title': '生物' },
                    { 'index': 1, 'title': '生物' }
                ],
                Tue: [
                    { 'index': 1, 'title': '物理' },
                    { 'index': 3, 'title': '语文' }
                ],
                Wed: [
                    { 'index': 5, 'title': '英语' },
                    { 'index': 6, 'title': '英语' },
                    { 'index': 7, 'title': '物理' },
                    { 'index': 8, 'title': '英语' },
                    { 'index': 1, 'title': '生物' },
                    { 'index': 2, 'title': '数学' },
                    { 'index': 3, 'title': '英语' }
                ],
                Thu: [
                    { 'index': 4, 'title': '语文' },
                    { 'index': 5, 'title': '英语' },
                    { 'index': 6, 'title': '生物' },
                    { 'index': 7, 'title': '历史' }
                ],
                Fri: [
                    { 'index': 8, 'title': '化学' },
                    { 'index': 1, 'title': '英语' }
                ],
                Sat: [
                    { 'index': 1, 'title': '物理' },
                    { 'index': 3, 'title': '语文' }
                ],
                Sun: [
                    { 'index': 8, 'title': '化学' },
                    { 'index': 1, 'title': '英语' }
                ]
            }, {
                sort: 4,
                Mon: [
                    { 'index': 6, 'title': '生物' },
                    { 'index': 8, 'title': '生物' },
                    { 'index': 1, 'title': '生物' }
                ],
                Tue: [
                    { 'index': 1, 'title': '物理' },
                    { 'index': 3, 'title': '语文' }
                ],
                Wed: [
                    { 'index': 5, 'title': '英语' },
                    { 'index': 6, 'title': '英语' },
                    { 'index': 7, 'title': '物理' },
                    { 'index': 8, 'title': '英语' },
                    { 'index': 1, 'title': '生物' },
                    { 'index': 2, 'title': '数学' },
                    { 'index': 3, 'title': '英语' }
                ],
                Thu: [
                    { 'index': 4, 'title': '语文' },
                    { 'index': 5, 'title': '英语' },
                    { 'index': 7, 'title': '历史' }
                ],
                Fri: [
                    { 'index': 8, 'title': '化学' },
                    { 'index': 1, 'title': '英语' }
                ],
                Sat: [
                    { 'index': 1, 'title': '物理' },
                    { 'index': 3, 'title': '语文' }
                ],
                Sun: [
                    { 'index': 3, 'title': '生物' },
                    { 'index': 4, 'title': '语文' },
                    { 'index': 5, 'title': '历史' },
                    { 'index': 6, 'title': '数学' },
                    { 'index': 7, 'title': '英语' },
                    { 'index': 8, 'title': '化学' },
                    { 'index': 1, 'title': '英语' }
                ]
            }
        ]
        console.error('data==', data)
        return this.stdMessage(param._success, '成功', data, 200);
    }
    // 显示资源列表
    info(option) {
        let param = this.parseOption(option);
        console.log('[学期数据] 显示资源列表 param=', param, '&option=', option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                total: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'data|1-10': [{
                    'id': '@increment', // ID
                    'title': '第@integer(0,5)学期',
                    'startDate': '@datetime("yyyy-MM-dd")',
                    'endDate': '@datetime("yyyy-MM-dd")',
                    'startWeek': '@integer(5,10)',
                    'endWeek': '@integer(20,25)',
                    'totalWeek': '@integer(20,25)',
                    'created_time': '@datetime("yyyy-MM-dd HH:mm:ss")',
                    'login_time': '@datetime("yyyy-MM-dd HH:mm:ss")', // 登录时间

                }],
            },
        })
    }
    // 显示资源列表
    task(option) {
        let param = this.parseOption(option);
        console.log('[任务数据] 显示资源列表 param=', param, '&option=', option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                total: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'data|1-10': [{
                    'id': '@increment', // ID
                    'taskName': '任务@integer(10,99)',//任务名称
                    'taskDescription': '任务描述',//任务描述
                    'taskModel': 'day',
                    'dayHour': "13:50",
                    'day': "1",
                    'hour': "",
                    'tackRoom': '@integer(5,10)',//教室数量
                    'taskInstructions': '@integer(1,2)',//任务状态
                    'taskStatus': '@integer(1,2)',//任务状态
                    'created_time': '@datetime("yyyy-MM-dd HH:mm:ss")',

                }],
            },
        })
    }

    // 显示资源列表
    datagrid(option) {
        let param = this.parseOption(option);
        console.log('[节次模拟数据] 显示资源列表 param=', param, '&option=', option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                totalCount: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'list|1-10': [{
                    'id': '@increment', // ID
                    'sort': '第@integer(0,100)节次',
                    'startDate': '@datetime("yyyy-MM-dd")',
                    'endDate': '@datetime("yyyy-MM-dd")',
                    'created_time': '@datetime("yyyy-MM-dd HH:mm:ss")',

                }],
            },
        })
    }
    // 显示资源列表
    tasklog(option) {
        let param = this.parseOption(option);
        console.log('[节次模拟数据] 显示资源列表 param=', param, '&option=', option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                total: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'data|1-10': [{
                    'taskId': '@increment', // ID
                    'value': '第@integer(0,2)',//任务指令
                    'createdTime': '@datetime("yyyy-MM-dd HH:mm:ss")',//任务时间

                }],
            },
        })
    }

    // 保存新建的资源
    save(option) {
        let param = this.parseOption(option);
        console.log('[会员模拟数据] 保存新建的资源 param=', param, '&option=', option);
        if (!param.user_name || param.user_name.trim().length == 0) {
            return this.stdMessage(false, '用户名是必填项');
        }
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            'data': {
                'id': '@id', // 随机编号
            }
        })
    }

    // 保存更新的资源
    update(option) {
        let param = this.parseOption(option);
        console.log('[会员模拟数据] 保存更新的资源 param=', param, '&option=', option);
        if (!param.id || isNaN(param.id)) {
            return this.stdMessage(false, '参数无效');
        }
        if (!param.user_name || param.user_name.trim().length == 0) {
            return this.stdMessage(false, '用户名无效');
        }
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            'data': {
                'id': param.id, // 随机编号
            }
        })

    }

    // 删除指定资源
    delete(option) {
        let param = this.parseOption(option);
        console.log('[会员模拟数据] 删除指定资源 param=', param, '&option=', option);
        if (!param.id || param.id.trim().length == 0) {
            return this.stdMessage(false, '参数无效');
        }
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            'data': {
                'id': param.id, // 随机编号
            }
        })
    }

    // 解析参数 option= {url:'/api/read?id=1', type:'GET', data:null}
    parseOption(option) {
        let param = {}
        if (option.url.indexOf('?') > -1) {
            new URLSearchParams(option.url.substring(option.url.indexOf('?') + 1)).forEach((v, k) => {
                param[k] = v;
            })
        }
        if (option.body) {
            if (option.body instanceof FormData) {
                option.body.forEach((v, k) => {
                    param[k] = v;
                })
            } else {
                param = JSON.parse(option.body);
            }
        }
        // 可以通过传参 _success 来控制返回消息的成功状态。默认返回成功消息。
        if (typeof (param._success) != 'boolean') {
            param._success = true;
        }
        return param;
    }

    // 返回标准消息对象
    stdMessage(success, message, data = '', code = 0) {
        return {
            success: success,
            message: message,
            data: data,
            code: code,
        }
    }
}

export default new TeachingLiknageMock;